A number of digital signaling protocols have been developed to support communication between integrated circuits in a system such as a mobile device. Examples of such digital signaling protocols include general purpose input/output (GPIO) and universal asynchronous receiver transmitter (UART). As technology advances, these various digital signaling protocols have been enhanced. For example, the assignee of the present matter has developed a “virtual” GPIO architecture in which a GPIO finite state machine serializes GPIO data received from a processor through a GPIO interface and transmits the serialized GPIO data over a dedicated transmit pin. Since the processor needs no software modification in that it may continue to interface with the GPIO interface in a conventional fashion as it would to transmit GPIO date over conventional GPIO pins, the virtualizing of the GPIO data is transparent to the processor. The processor thus needs no software or hardware modifications with regard to communication through the virtual GPIO interface. A remote integrated circuit receives the serialized virtual GPIO data over a dedicated receive pin. In addition, each virtual GPIO integrated circuit may include a clock pin to synchronize the VGPIO transmission and reception. In other embodiments, no clock pin is utilized such that there are both two-pin and three-pin virtual GPIO embodiments.
Since there are different digital signaling protocol configurations, it is desirable for a host processor or device in a system to identify the particular configuration being used by the remaining devices in a system during a process denoted as device enumeration. However, existing device enumeration techniques are problematic. For example, one conventional approach to device enumeration involves the burning of fuses or similar one-time-programmable memories in the various devices within a system. Upon power-up, the system's host device reads the fuse states in the various remaining devices to obtain their enumeration data. Such fuse-based enumeration, however, suffers from the die area demands for the fuses. As an alternative, I/O bootstrapping enumeration involves the tying of dedicated pins to either power or ground to program the enumeration data. I/O bootstrapping thus increases packaging costs and requires additional components on the circuit board. Finally, firmware has been used for enumeration but this also increases die demands and complexity.
Accordingly, there is a need in the art for improved enumeration techniques.